package cn.actoncode.boot.module.ai.service.chatmodel.impl;

import cn.actoncode.boot.framework.zhipu.core.bean.ChatGLMV4Request;
import cn.actoncode.boot.framework.zhipu.core.bean.ChatGLMV4Response;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

import java.io.InputStream;

@Slf4j
@Component("ChatGLM4")
public class ChatGLM4StrategyServiceImpl extends AbstractChatGLM3ServiceImpl {

    private final String model = "glm-4";

    @Override
    protected InputStream streamChat(ChatGLMV4Request chatGLMRequest) {
        chatGLMRequest.setModel(model);
        chatGLMRequest.setMaxTokens(8192);
        String api = chatGLMApiClient.getZhipuProperties().getChatGlmV4ApiEndpoint();
        return chatGLMApiClient.streamChat(chatGLMRequest, api);
    }

    @Override
    protected ChatGLMV4Response chat(ChatGLMV4Request chatGLMRequest) {
        chatGLMRequest.setModel(model);
        chatGLMRequest.setMaxTokens(8192);
        String api = chatGLMApiClient.getZhipuProperties().getChatGlmV4ApiEndpoint();
        return chatGLMApiClient.chat(chatGLMRequest, api);
    }
}
